package org.example.v2;

import org.example.v2.state.OrderState;
import org.example.v2.state.PendingState;

/**
 * OrderStateMachine 类管理订单的当前状态，并处理状态转换。
 */
public class OrderStateMachine {
    private OrderState state;

    /**
     * 构造函数，初始化订单状态为待处理状态。
     */
    public OrderStateMachine() {
        this.state = new PendingState();
    }

    /**
     * 设置订单的当前状态。
     * @param state 新的订单状态
     */
    public void setState(OrderState state) {
        this.state = state;
    }

    /**
     * 处理订单状态转换的事件。
     * @param event 触发事件
     */
    public void onEvent(String event) {
        state.handle(this, event);
    }

    @Override
    public String toString() {
        return "订单当前状态: " + state.getClass().getSimpleName();
    }
}
